草庐IT

sql - 按 IF EXISTS 排序

全部标签

ruby - 按升序和降序对多个值进行排序

我正在尝试根据不同的属性对一组对象进行排序。其中一些属性我想按升序排序,一些属性按降序排序。我已经能够按升序或降序进行排序,但无法将两者结合起来。这是我正在使用的简单类:classDogattr_reader:name,:genderDOGS=[]definitialize(name,gender)@name=name@gender=genderDOGS然后我可以实例化一些狗,稍后进行分类。@rover=Dog.new("Rover","Male")@max=Dog.new("Max","Male")@fluffy=Dog.new("Fluffy","Female")@cocoa=Do

ruby-on-rails - Development.log 日志文件不记录 Rails SQL 查询

我在这里关注MichaelHartl的Rails教程:http://ruby.railstutorial.org/chapters/modeling-and-viewing-users-one#top我使用此命令在单独的窗口中跟踪SQL查询:tail-flog/development.log然而,当我在沙盒Rails控制台中时,日志不会用SQL语句更新,而是显示在Rails控制台中。我该如何纠正这种行为?我应该补充一点,我的数据库迁移和对数据模型(新表等)的更改都反射(reflect)在日志中。仅省略由Rails控制台内的方法传播的SQL语句(而是显示在Rails控制台中)。这是我的G

Ruby:对可能包含 nil 的多维数组进行排序有时会失败

我在我的一个项目的失败测试中发现了这个例子。为什么这样做:[[1,2,3],[2,3,4],[1,1,nil]].sort#=>[[1,1,nil],[1,2,3],[2,3,4]]但这不是:[[1,2,3],[nil,3,4],[1,1,nil]].sort#=>ERROR:ArgumentError:comparisonofArraywithArrayfailed已测试的Ruby版本:2.0.0、1.9.3。 最佳答案 它失败了,因为它超过了nil。第一个测试示例没有失败的原因是1,1与1,2进行了比较。它不会达到nil的程度进

ruby - 按值对 Hash of Hashes 进行排序(并返回哈希,而不是数组)

我有以下哈希:user={'user'=>{'title'=>{'weight'=>1,....}'body'=>{'weight'=>4,....}........}}是否可以让用户按其子哈希的权重键排序?我查看了Hash.sort,但看起来它返回的是数组而不是我原来的哈希排序。 最佳答案 在Ruby1.9中,Hashes被排序,但是Hash#sort仍然返回Array的Array秒。想象一下!它确实意味着您可以在此基础上构建自己的排序方法。classHashdefsorted_hash(&block)self.class[sor

ruby - 是否可以根据单个对象对方法的响应对对象列表进行排序?

我想显示一个产品的画廊,其中包括待售和非待售产品。只是我想让待售的产品出现在列表的前面,而不是待售的对象出现在列表的末尾。我实现此目的的一种简单方法是制作两个列表,然后合并它们(一个列表是on_sale?对象,另一个列表是非on_sale?对象):available_products=[]sold_products=[]@products.eachdo|product|ifproduct.on_sale?available_products...但是对于我现有应用程序的结构来说,由于我的代码中有一个奇怪的地方,这将需要过多的重构(我失去了分页,我宁愿不重构)。如果有一种方法可以通过我的

sql - Rails SQL COUNT N+1 效率低下

我有一个博客。在我的索引页面上,我拉入了所有博客文章。对于每篇博客文章,我都会计算该文章的评论数。这会导致N+1问题。我的查询如下所示:SELECT"blog_posts".*FROM"blog_posts"WHERE("blog_posts"."published"='t')ORDERBYpublished_atDESCSELECT"users".*FROM"users"WHERE("users"."id"IN(1,2,3))SELECTCOUNT(*)FROM"blog_comments"WHERE("blog_comments".blog_post_id=10)SELECTCOU

ruby-on-rails - Ruby 排序依据(整数) "comparison of NilClass with 3200 failed"

我想在Rails应用程序中对我的记录进行排序:@ebms=Ebm.all@ebms.sort_by!{|u|u.number}u.number被定义为整数!问题是Rails无法将它与nil进行比较:comparisonofNilClasswith32400failed我该怎么做才能避免这个错误? 最佳答案 尝试将nil转换为整数怎么样?@ebms=Ebm.all@ebms.sort_by!{|u|u.number.to_i} 关于ruby-on-rails-Ruby排序依据(整数)"co

ruby-on-rails - Rails 3. 按关联模型排序

假设我有两个模型:Course和ScheduledCourse。类(class)模型有一个名称属性。coursehas_many:预定类(class)scheduled_courses:属于类(class)coursesid|name1|biology2|history3|chemistry4|literaturescheduled_coursesid|course_id1|22|43|14|2如何进行ActiveRecord查询以按字母顺序对安排的类(class)进行排序? 最佳答案 尝试...ScheduledCourse.jo

ruby-on-rails - Ruby 中的 Podium 样式排序

鉴于我有哈希数组,我怎样才能将它们排序(使用ruby​​)为podium样式(使用它们的created_at值),如下图所示?[{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."},{created_at:"DATETIME",src:"..."}] 最佳答案 arr.sort_by{|a|a['created_at']}.inject([]){|r,e|r.reverse有趣的问题!

sql - Ruby on Rails 迁移中的 unsigned int 字段?

我怎样才能使populationunsigned?defself.upcreate_table:citiesdo|t|t.string:namet.integer:populationt.float:latitudet.float:longitudet.timestampsendend 最佳答案 这应该适合你。t.column:population,'integerunsigned' 关于sql-RubyonRails迁移中的unsignedint字段?,我们在StackOverflow